#ifndef QLSLOG_H
#define QLSLOG_H

#include <QObject>
#include <QMutex>
#include <QString>

#include <QsLog.h>

#include "qls_log_global.h"

class QLS_LOG_EXPORT QLsLog : public QObject
{
    Q_OBJECT
public:
    QLsLog();

    /* 单例模式：懒汉式 + 双检锁 */
    static QLsLog &GetInstance();
    /* 销毁实例 */
    static void DestroyInstance();
    /* 设置日志输出文件 */
    void SetLogPath(const QString &logPath);
    /* 设置日志输出界面 */
    void SetLogWindow(QObject *window);

private:
    QString m_logPath; /* 日志文件路径 */
    QObject *m_window; /* 输出窗口，支持多个 */

    static QMutex m_instanceMutex; /* 实例锁 */
    static QLsLog *m_instance;  /* 实例 */
};

#endif // QLSLOG_H
